/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ik.servlets;

import com.ik.pbs.Correo.Correo;
import com.ik.pbs.Correo.SendMail;
import com.ik.pbs.Encapsulados.Anuncios;
import com.ik.pbs.Encapsulados.PerfilUsuario;
import com.ik.pbs.Encapsulados.Usuarios;
import com.ik.pbs.Manejadores.ManejadorAnuncios;
import com.ik.pbs.Manejadores.ManejadorEstados;
import com.ik.pbs.Manejadores.ManejadorPerfilUsuario;
import com.ik.pbs.Manejadores.ManejadorUsuarios;
import com.ik.pbs.Random.Aleatoreo;
import com.ik.pbs.conection.ConexionDB;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author eniac
 */
@WebServlet(name = "restoreContrasena", urlPatterns = {"/restoreContrasena"})
public class restoreContrasena extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        ConexionDB con = new ConexionDB();
        String path = null;
        try {
            /* TODO output your page here. You may use following sample code. */
            String correo = request.getParameter("mail");
            PerfilUsuario usuario = new ManejadorPerfilUsuario().getPerfilUsuarioPorCorreo(con.getConnectionDB(), correo);
            if (usuario == null) {
                request.setAttribute("correo", "1");
                path = "comun/restoreContrasena.jsp";

            } else {
                request.setAttribute("correo", "0");
                path = "login.jsp";
                
                Aleatoreo password = new Aleatoreo();
                String contrasena = password.RandomString(10);
                Usuarios usuarioamodificar = usuario.getUsuarios_id();
                usuarioamodificar.setPassword(contrasena);
                ManejadorUsuarios.getInstance().insertarUsuario(con.getConnectionDB(), usuarioamodificar);
                
                
                Correo email = new Correo();
                SendMail sendemail = new SendMail();
                email.setAsunto("PBS:Olvidaste tu Contraseña");
                email.setDesde("publicationboard@gmail.com");
                email.setContraseña("4dm1n1str4d0r");
                email.setHacia(correo.split(";"));
                String saludo = "<b>Saludos estimado ";
                String contenido1 = "Su nueva contraseña es ";
                String contenido2 = "Favor de loggearse a nuestro sistema con esta nueva contraseña. <br><br>Muchas gracias por confiar en nuestro servicio. <br><br> <b>Att.</b> <br><u><i>Departamento Administrativo</i></u><br><font size=4><b>Publication Board System</b></font>";


                email.setContenido(saludo + usuario.getNombrecompleto() + ".</b><br><br>" + contenido1 +"<b>"+contrasena+"</b><br>"+ contenido2);
                sendemail.sendSSLMessage(email);
            }
            RequestDispatcher res = request.getRequestDispatcher(path);
            res.forward(request, response);
            
        } finally {
            out.close();
        }
    }
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
